{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "start\n"
     ]
    }
   ],
   "source": [
    "import numpy as np\n",
    "import pandas as pd\n",
    "from sklearn.metrics import r2_score\n",
    "import matplotlib.pyplot as plt\n",
    "import seaborn as sns\n",
    "\n",
    "%matplotlib inline\n",
    "\n",
    "print(\"start\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>instant</th>\n",
       "      <th>dteday</th>\n",
       "      <th>season</th>\n",
       "      <th>yr</th>\n",
       "      <th>mnth</th>\n",
       "      <th>holiday</th>\n",
       "      <th>weekday</th>\n",
       "      <th>workingday</th>\n",
       "      <th>weathersit</th>\n",
       "      <th>temp</th>\n",
       "      <th>atemp</th>\n",
       "      <th>hum</th>\n",
       "      <th>windspeed</th>\n",
       "      <th>casual</th>\n",
       "      <th>registered</th>\n",
       "      <th>cnt</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>1</td>\n",
       "      <td>2011-01-01</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>6</td>\n",
       "      <td>0</td>\n",
       "      <td>2</td>\n",
       "      <td>0.344167</td>\n",
       "      <td>0.363625</td>\n",
       "      <td>0.805833</td>\n",
       "      <td>0.160446</td>\n",
       "      <td>331</td>\n",
       "      <td>654</td>\n",
       "      <td>985</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>2</td>\n",
       "      <td>2011-01-02</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>2</td>\n",
       "      <td>0.363478</td>\n",
       "      <td>0.353739</td>\n",
       "      <td>0.696087</td>\n",
       "      <td>0.248539</td>\n",
       "      <td>131</td>\n",
       "      <td>670</td>\n",
       "      <td>801</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>3</td>\n",
       "      <td>2011-01-03</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>0.196364</td>\n",
       "      <td>0.189405</td>\n",
       "      <td>0.437273</td>\n",
       "      <td>0.248309</td>\n",
       "      <td>120</td>\n",
       "      <td>1229</td>\n",
       "      <td>1349</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>4</td>\n",
       "      <td>2011-01-04</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>2</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>0.200000</td>\n",
       "      <td>0.212122</td>\n",
       "      <td>0.590435</td>\n",
       "      <td>0.160296</td>\n",
       "      <td>108</td>\n",
       "      <td>1454</td>\n",
       "      <td>1562</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>5</td>\n",
       "      <td>2011-01-05</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>3</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>0.226957</td>\n",
       "      <td>0.229270</td>\n",
       "      <td>0.436957</td>\n",
       "      <td>0.186900</td>\n",
       "      <td>82</td>\n",
       "      <td>1518</td>\n",
       "      <td>1600</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   instant      dteday  season  yr  mnth  holiday  weekday  workingday  \\\n",
       "0        1  2011-01-01       1   0     1        0        6           0   \n",
       "1        2  2011-01-02       1   0     1        0        0           0   \n",
       "2        3  2011-01-03       1   0     1        0        1           1   \n",
       "3        4  2011-01-04       1   0     1        0        2           1   \n",
       "4        5  2011-01-05       1   0     1        0        3           1   \n",
       "\n",
       "   weathersit      temp     atemp       hum  windspeed  casual  registered  \\\n",
       "0           2  0.344167  0.363625  0.805833   0.160446     331         654   \n",
       "1           2  0.363478  0.353739  0.696087   0.248539     131         670   \n",
       "2           1  0.196364  0.189405  0.437273   0.248309     120        1229   \n",
       "3           1  0.200000  0.212122  0.590435   0.160296     108        1454   \n",
       "4           1  0.226957  0.229270  0.436957   0.186900      82        1518   \n",
       "\n",
       "    cnt  \n",
       "0   985  \n",
       "1   801  \n",
       "2  1349  \n",
       "3  1562  \n",
       "4  1600  "
      ]
     },
     "execution_count": 11,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data = pd.read_csv(\"day.csv\")\n",
    "data.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(731, 16)"
      ]
     },
     "execution_count": 12,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>instant</th>\n",
       "      <th>season</th>\n",
       "      <th>yr</th>\n",
       "      <th>mnth</th>\n",
       "      <th>holiday</th>\n",
       "      <th>weekday</th>\n",
       "      <th>workingday</th>\n",
       "      <th>weathersit</th>\n",
       "      <th>temp</th>\n",
       "      <th>atemp</th>\n",
       "      <th>hum</th>\n",
       "      <th>windspeed</th>\n",
       "      <th>cnt</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>6</td>\n",
       "      <td>0</td>\n",
       "      <td>2</td>\n",
       "      <td>0.344167</td>\n",
       "      <td>0.363625</td>\n",
       "      <td>0.805833</td>\n",
       "      <td>0.160446</td>\n",
       "      <td>985</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>2</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>2</td>\n",
       "      <td>0.363478</td>\n",
       "      <td>0.353739</td>\n",
       "      <td>0.696087</td>\n",
       "      <td>0.248539</td>\n",
       "      <td>801</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>3</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>0.196364</td>\n",
       "      <td>0.189405</td>\n",
       "      <td>0.437273</td>\n",
       "      <td>0.248309</td>\n",
       "      <td>1349</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>4</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>2</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>0.200000</td>\n",
       "      <td>0.212122</td>\n",
       "      <td>0.590435</td>\n",
       "      <td>0.160296</td>\n",
       "      <td>1562</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>5</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>3</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>0.226957</td>\n",
       "      <td>0.229270</td>\n",
       "      <td>0.436957</td>\n",
       "      <td>0.186900</td>\n",
       "      <td>1600</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   instant  season  yr  mnth  holiday  weekday  workingday  weathersit  \\\n",
       "0        1       1   0     1        0        6           0           2   \n",
       "1        2       1   0     1        0        0           0           2   \n",
       "2        3       1   0     1        0        1           1           1   \n",
       "3        4       1   0     1        0        2           1           1   \n",
       "4        5       1   0     1        0        3           1           1   \n",
       "\n",
       "       temp     atemp       hum  windspeed   cnt  \n",
       "0  0.344167  0.363625  0.805833   0.160446   985  \n",
       "1  0.363478  0.353739  0.696087   0.248539   801  \n",
       "2  0.196364  0.189405  0.437273   0.248309  1349  \n",
       "3  0.200000  0.212122  0.590435   0.160296  1562  \n",
       "4  0.226957  0.229270  0.436957   0.186900  1600  "
      ]
     },
     "execution_count": 13,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#将不需要的数据清理掉\n",
    "data = data.drop('casual',axis = 1)\n",
    "data = data.drop('registered',axis = 1)\n",
    "#日期没有特征性，排除\n",
    "data = data.drop('dteday',axis = 1)\n",
    "data.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>instant</th>\n",
       "      <th>season</th>\n",
       "      <th>yr</th>\n",
       "      <th>mnth</th>\n",
       "      <th>holiday</th>\n",
       "      <th>weekday</th>\n",
       "      <th>workingday</th>\n",
       "      <th>weathersit</th>\n",
       "      <th>temp</th>\n",
       "      <th>atemp</th>\n",
       "      <th>hum</th>\n",
       "      <th>windspeed</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>6</td>\n",
       "      <td>0</td>\n",
       "      <td>2</td>\n",
       "      <td>0.344167</td>\n",
       "      <td>0.363625</td>\n",
       "      <td>0.805833</td>\n",
       "      <td>0.160446</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>2</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>2</td>\n",
       "      <td>0.363478</td>\n",
       "      <td>0.353739</td>\n",
       "      <td>0.696087</td>\n",
       "      <td>0.248539</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>3</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>0.196364</td>\n",
       "      <td>0.189405</td>\n",
       "      <td>0.437273</td>\n",
       "      <td>0.248309</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>4</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>2</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>0.200000</td>\n",
       "      <td>0.212122</td>\n",
       "      <td>0.590435</td>\n",
       "      <td>0.160296</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>5</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>3</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>0.226957</td>\n",
       "      <td>0.229270</td>\n",
       "      <td>0.436957</td>\n",
       "      <td>0.186900</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   instant  season  yr  mnth  holiday  weekday  workingday  weathersit  \\\n",
       "0        1       1   0     1        0        6           0           2   \n",
       "1        2       1   0     1        0        0           0           2   \n",
       "2        3       1   0     1        0        1           1           1   \n",
       "3        4       1   0     1        0        2           1           1   \n",
       "4        5       1   0     1        0        3           1           1   \n",
       "\n",
       "       temp     atemp       hum  windspeed  \n",
       "0  0.344167  0.363625  0.805833   0.160446  \n",
       "1  0.363478  0.353739  0.696087   0.248539  \n",
       "2  0.196364  0.189405  0.437273   0.248309  \n",
       "3  0.200000  0.212122  0.590435   0.160296  \n",
       "4  0.226957  0.229270  0.436957   0.186900  "
      ]
     },
     "execution_count": 14,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#分离x和y\n",
    "y = data['cnt'].values\n",
    "X = data.drop('cnt', axis = 1)\n",
    "columns = X.columns\n",
    "\n",
    "X.head()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "对全体数据，随机选择其中80%做训练数据，剩下20%为测试数据"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(584, 12)"
      ]
     },
     "execution_count": 15,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#数据进行分开\n",
    "from sklearn.model_selection import train_test_split\n",
    "\n",
    "X_train,X_test,y_train,y_test = train_test_split(X,y,random_state = 80,test_size = 0.2)\n",
    "X_train.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 108,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/home/chsl/.local/lib/python3.6/site-packages/sklearn/preprocessing/data.py:617: DataConversionWarning: Data with input dtype int64, float64 were all converted to float64 by StandardScaler.\n",
      "  return self.partial_fit(X, y)\n",
      "/home/chsl/.local/lib/python3.6/site-packages/sklearn/base.py:462: DataConversionWarning: Data with input dtype int64, float64 were all converted to float64 by StandardScaler.\n",
      "  return self.fit(X, **fit_params).transform(X)\n",
      "/home/chsl/.local/lib/python3.6/site-packages/ipykernel_launcher.py:8: DataConversionWarning: Data with input dtype int64, float64 were all converted to float64 by StandardScaler.\n",
      "  \n",
      "/home/chsl/.local/lib/python3.6/site-packages/sklearn/utils/validation.py:590: DataConversionWarning: Data with input dtype int64 was converted to float64 by StandardScaler.\n",
      "  warnings.warn(msg, DataConversionWarning)\n",
      "/home/chsl/.local/lib/python3.6/site-packages/sklearn/utils/validation.py:590: DataConversionWarning: Data with input dtype int64 was converted to float64 by StandardScaler.\n",
      "  warnings.warn(msg, DataConversionWarning)\n",
      "/home/chsl/.local/lib/python3.6/site-packages/sklearn/utils/validation.py:590: DataConversionWarning: Data with input dtype int64 was converted to float64 by StandardScaler.\n",
      "  warnings.warn(msg, DataConversionWarning)\n"
     ]
    }
   ],
   "source": [
    "# 数据标准化\n",
    "from sklearn.preprocessing import StandardScaler\n",
    "\n",
    "ss_X = StandardScaler()\n",
    "ss_y = StandardScaler()\n",
    "\n",
    "X_train = ss_X.fit_transform(X_train)\n",
    "X_test = ss_X.transform(X_test)\n",
    "\n",
    "y_train = ss_y.fit_transform(y_train.reshape(-1, 1))\n",
    "y_test = ss_y.transform(y_test.reshape(-1, 1))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "最小二乘线性回归模型"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 109,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>columns</th>\n",
       "      <th>coef</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>yr</td>\n",
       "      <td>[1.1851959584673368]</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>mnth</td>\n",
       "      <td>[0.29935653410152596]</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>season</td>\n",
       "      <td>[0.293371062067745]</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9</th>\n",
       "      <td>atemp</td>\n",
       "      <td>[0.2529716382829137]</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8</th>\n",
       "      <td>temp</td>\n",
       "      <td>[0.24943644381198654]</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>weekday</td>\n",
       "      <td>[0.06174148083026379]</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>workingday</td>\n",
       "      <td>[0.01825240519961894]</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>holiday</td>\n",
       "      <td>[-0.042228491655313234]</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>10</th>\n",
       "      <td>hum</td>\n",
       "      <td>[-0.061190500475231]</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>11</th>\n",
       "      <td>windspeed</td>\n",
       "      <td>[-0.09615096775049059]</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7</th>\n",
       "      <td>weathersit</td>\n",
       "      <td>[-0.17228855317347397]</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>instant</td>\n",
       "      <td>[-0.747751348391044]</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "       columns                     coef\n",
       "2           yr     [1.1851959584673368]\n",
       "3         mnth    [0.29935653410152596]\n",
       "1       season      [0.293371062067745]\n",
       "9        atemp     [0.2529716382829137]\n",
       "8         temp    [0.24943644381198654]\n",
       "5      weekday    [0.06174148083026379]\n",
       "6   workingday    [0.01825240519961894]\n",
       "4      holiday  [-0.042228491655313234]\n",
       "10         hum     [-0.061190500475231]\n",
       "11   windspeed   [-0.09615096775049059]\n",
       "7   weathersit   [-0.17228855317347397]\n",
       "0      instant     [-0.747751348391044]"
      ]
     },
     "execution_count": 109,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "from sklearn.linear_model import LinearRegression\n",
    "\n",
    "lr = LinearRegression()\n",
    "\n",
    "lr.fit(X_train,y_train)\n",
    "\n",
    "y_test_pred_lr = lr.predict(X_test)\n",
    "y_train_pred_lr = lr.predict(X_train)\n",
    "\n",
    "fs = pd.DataFrame({\"columns\":list(columns),\"coef\":list((lr.coef_.T))})\n",
    "fs.sort_values(by=['coef'],ascending=False)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "最小二乘线性回归模型 - 评价"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 110,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "The r2 score of LinearRegression on test is 0.8085827243821513\n",
      "The r2 score of LinearRegression on train is 0.7988207782807444\n"
     ]
    }
   ],
   "source": [
    "print(\"The r2 score of LinearRegression on test is %s\"%r2_score(y_test,y_test_pred_lr))\n",
    "print(\"The r2 score of LinearRegression on train is %s\"%r2_score(y_train,y_train_pred_lr))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 111,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 504x360 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "f, ax = plt.subplots(figsize=(7, 5)) \n",
    "f.tight_layout() \n",
    "ax.hist(y_train - y_train_pred_lr,bins=40, label='Residuals Linear', color='b', alpha=.5); \n",
    "ax.set_title(\"BikeSharing\") \n",
    "ax.legend(loc='best');"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 161,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 288x216 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.figure(figsize=(4, 3))\n",
    "plt.scatter(y_train, y_train_pred_lr)\n",
    "plt.plot([-3, 3], [-3, 3], '--k')   #数据已经标准化，3倍标准差即可\n",
    "plt.axis('tight')\n",
    "plt.xlabel('True cnt')\n",
    "plt.ylabel('Predicted cnt')\n",
    "plt.tight_layout()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "岭回归模型"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 132,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/home/chsl/.local/lib/python3.6/site-packages/sklearn/model_selection/_split.py:626: Warning: The least populated class in y has only 2 members, which is too few. The minimum number of members in any class cannot be less than n_splits=5.\n",
      "  % (min_groups, self.n_splits)), Warning)\n",
      "/home/chsl/.local/lib/python3.6/site-packages/sklearn/utils/validation.py:752: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "/home/chsl/.local/lib/python3.6/site-packages/sklearn/utils/validation.py:752: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "/home/chsl/.local/lib/python3.6/site-packages/sklearn/utils/validation.py:752: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "/home/chsl/.local/lib/python3.6/site-packages/sklearn/utils/validation.py:752: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "/home/chsl/.local/lib/python3.6/site-packages/sklearn/utils/validation.py:752: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "/home/chsl/.local/lib/python3.6/site-packages/sklearn/utils/validation.py:752: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "/home/chsl/.local/lib/python3.6/site-packages/sklearn/utils/validation.py:752: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "/home/chsl/.local/lib/python3.6/site-packages/sklearn/utils/validation.py:752: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "/home/chsl/.local/lib/python3.6/site-packages/sklearn/utils/validation.py:752: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "/home/chsl/.local/lib/python3.6/site-packages/sklearn/utils/validation.py:752: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "/home/chsl/.local/lib/python3.6/site-packages/sklearn/utils/validation.py:752: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "/home/chsl/.local/lib/python3.6/site-packages/sklearn/utils/validation.py:752: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "/home/chsl/.local/lib/python3.6/site-packages/sklearn/utils/validation.py:752: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "/home/chsl/.local/lib/python3.6/site-packages/sklearn/utils/validation.py:752: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "/home/chsl/.local/lib/python3.6/site-packages/sklearn/utils/validation.py:752: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "/home/chsl/.local/lib/python3.6/site-packages/sklearn/utils/validation.py:752: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "/home/chsl/.local/lib/python3.6/site-packages/sklearn/utils/validation.py:752: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "/home/chsl/.local/lib/python3.6/site-packages/sklearn/utils/validation.py:752: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "/home/chsl/.local/lib/python3.6/site-packages/sklearn/utils/validation.py:752: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "/home/chsl/.local/lib/python3.6/site-packages/sklearn/utils/validation.py:752: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "/home/chsl/.local/lib/python3.6/site-packages/sklearn/utils/validation.py:752: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "/home/chsl/.local/lib/python3.6/site-packages/sklearn/utils/validation.py:752: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "/home/chsl/.local/lib/python3.6/site-packages/sklearn/utils/validation.py:752: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "/home/chsl/.local/lib/python3.6/site-packages/sklearn/utils/validation.py:752: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "/home/chsl/.local/lib/python3.6/site-packages/sklearn/utils/validation.py:752: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "/home/chsl/.local/lib/python3.6/site-packages/sklearn/utils/validation.py:752: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "/home/chsl/.local/lib/python3.6/site-packages/sklearn/utils/validation.py:752: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "/home/chsl/.local/lib/python3.6/site-packages/sklearn/utils/validation.py:752: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "/home/chsl/.local/lib/python3.6/site-packages/sklearn/utils/validation.py:752: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "/home/chsl/.local/lib/python3.6/site-packages/sklearn/utils/validation.py:752: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "/home/chsl/.local/lib/python3.6/site-packages/sklearn/utils/validation.py:752: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "/home/chsl/.local/lib/python3.6/site-packages/sklearn/utils/validation.py:752: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "/home/chsl/.local/lib/python3.6/site-packages/sklearn/utils/validation.py:752: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "/home/chsl/.local/lib/python3.6/site-packages/sklearn/utils/validation.py:752: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "/home/chsl/.local/lib/python3.6/site-packages/sklearn/utils/validation.py:752: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "/home/chsl/.local/lib/python3.6/site-packages/sklearn/utils/validation.py:752: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "/home/chsl/.local/lib/python3.6/site-packages/sklearn/utils/validation.py:752: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "/home/chsl/.local/lib/python3.6/site-packages/sklearn/utils/validation.py:752: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "/home/chsl/.local/lib/python3.6/site-packages/sklearn/utils/validation.py:752: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/home/chsl/.local/lib/python3.6/site-packages/sklearn/utils/validation.py:752: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "/home/chsl/.local/lib/python3.6/site-packages/sklearn/utils/validation.py:752: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "/home/chsl/.local/lib/python3.6/site-packages/sklearn/utils/validation.py:752: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "/home/chsl/.local/lib/python3.6/site-packages/sklearn/utils/validation.py:752: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "/home/chsl/.local/lib/python3.6/site-packages/sklearn/utils/validation.py:752: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "/home/chsl/.local/lib/python3.6/site-packages/sklearn/utils/validation.py:752: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "/home/chsl/.local/lib/python3.6/site-packages/sklearn/utils/validation.py:752: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "/home/chsl/.local/lib/python3.6/site-packages/sklearn/utils/validation.py:752: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "/home/chsl/.local/lib/python3.6/site-packages/sklearn/utils/validation.py:752: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "/home/chsl/.local/lib/python3.6/site-packages/sklearn/utils/validation.py:752: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "/home/chsl/.local/lib/python3.6/site-packages/sklearn/utils/validation.py:752: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "/home/chsl/.local/lib/python3.6/site-packages/sklearn/utils/validation.py:752: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "/home/chsl/.local/lib/python3.6/site-packages/sklearn/utils/validation.py:752: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "/home/chsl/.local/lib/python3.6/site-packages/sklearn/utils/validation.py:752: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "/home/chsl/.local/lib/python3.6/site-packages/sklearn/utils/validation.py:752: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "/home/chsl/.local/lib/python3.6/site-packages/sklearn/utils/validation.py:752: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "/home/chsl/.local/lib/python3.6/site-packages/sklearn/utils/validation.py:752: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "/home/chsl/.local/lib/python3.6/site-packages/sklearn/utils/validation.py:752: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "/home/chsl/.local/lib/python3.6/site-packages/sklearn/utils/validation.py:752: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "/home/chsl/.local/lib/python3.6/site-packages/sklearn/utils/validation.py:752: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "/home/chsl/.local/lib/python3.6/site-packages/sklearn/utils/validation.py:752: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "/home/chsl/.local/lib/python3.6/site-packages/sklearn/utils/validation.py:752: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "/home/chsl/.local/lib/python3.6/site-packages/sklearn/utils/validation.py:752: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "/home/chsl/.local/lib/python3.6/site-packages/sklearn/utils/validation.py:752: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "/home/chsl/.local/lib/python3.6/site-packages/sklearn/utils/validation.py:752: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "/home/chsl/.local/lib/python3.6/site-packages/sklearn/utils/validation.py:752: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "/home/chsl/.local/lib/python3.6/site-packages/sklearn/utils/validation.py:752: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "/home/chsl/.local/lib/python3.6/site-packages/sklearn/utils/validation.py:752: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "/home/chsl/.local/lib/python3.6/site-packages/sklearn/utils/validation.py:752: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "/home/chsl/.local/lib/python3.6/site-packages/sklearn/utils/validation.py:752: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "/home/chsl/.local/lib/python3.6/site-packages/sklearn/utils/validation.py:752: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "/home/chsl/.local/lib/python3.6/site-packages/sklearn/utils/validation.py:752: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "/home/chsl/.local/lib/python3.6/site-packages/sklearn/utils/validation.py:752: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "/home/chsl/.local/lib/python3.6/site-packages/sklearn/utils/validation.py:752: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "/home/chsl/.local/lib/python3.6/site-packages/sklearn/utils/validation.py:752: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "/home/chsl/.local/lib/python3.6/site-packages/sklearn/utils/validation.py:752: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "/home/chsl/.local/lib/python3.6/site-packages/sklearn/utils/validation.py:752: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "/home/chsl/.local/lib/python3.6/site-packages/sklearn/utils/validation.py:752: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "/home/chsl/.local/lib/python3.6/site-packages/sklearn/utils/validation.py:752: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "/home/chsl/.local/lib/python3.6/site-packages/sklearn/utils/validation.py:752: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "/home/chsl/.local/lib/python3.6/site-packages/sklearn/utils/validation.py:752: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "/home/chsl/.local/lib/python3.6/site-packages/sklearn/utils/validation.py:752: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "/home/chsl/.local/lib/python3.6/site-packages/sklearn/utils/validation.py:752: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/home/chsl/.local/lib/python3.6/site-packages/sklearn/utils/validation.py:752: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "/home/chsl/.local/lib/python3.6/site-packages/sklearn/utils/validation.py:752: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "/home/chsl/.local/lib/python3.6/site-packages/sklearn/utils/validation.py:752: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "/home/chsl/.local/lib/python3.6/site-packages/sklearn/utils/validation.py:752: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "/home/chsl/.local/lib/python3.6/site-packages/sklearn/utils/validation.py:752: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "/home/chsl/.local/lib/python3.6/site-packages/sklearn/utils/validation.py:752: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "/home/chsl/.local/lib/python3.6/site-packages/sklearn/utils/validation.py:752: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "/home/chsl/.local/lib/python3.6/site-packages/sklearn/utils/validation.py:752: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "/home/chsl/.local/lib/python3.6/site-packages/sklearn/utils/validation.py:752: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "/home/chsl/.local/lib/python3.6/site-packages/sklearn/utils/validation.py:752: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "/home/chsl/.local/lib/python3.6/site-packages/sklearn/utils/validation.py:752: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "/home/chsl/.local/lib/python3.6/site-packages/sklearn/utils/validation.py:752: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "/home/chsl/.local/lib/python3.6/site-packages/sklearn/utils/validation.py:752: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "/home/chsl/.local/lib/python3.6/site-packages/sklearn/utils/validation.py:752: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "/home/chsl/.local/lib/python3.6/site-packages/sklearn/utils/validation.py:752: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "/home/chsl/.local/lib/python3.6/site-packages/sklearn/utils/validation.py:752: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "/home/chsl/.local/lib/python3.6/site-packages/sklearn/utils/validation.py:752: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "/home/chsl/.local/lib/python3.6/site-packages/sklearn/utils/validation.py:752: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "/home/chsl/.local/lib/python3.6/site-packages/sklearn/utils/validation.py:752: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "/home/chsl/.local/lib/python3.6/site-packages/sklearn/utils/validation.py:752: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "/home/chsl/.local/lib/python3.6/site-packages/sklearn/utils/validation.py:752: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "/home/chsl/.local/lib/python3.6/site-packages/sklearn/utils/validation.py:752: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "/home/chsl/.local/lib/python3.6/site-packages/sklearn/utils/validation.py:752: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "/home/chsl/.local/lib/python3.6/site-packages/sklearn/utils/validation.py:752: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "/home/chsl/.local/lib/python3.6/site-packages/sklearn/utils/validation.py:752: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "/home/chsl/.local/lib/python3.6/site-packages/sklearn/utils/validation.py:752: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "/home/chsl/.local/lib/python3.6/site-packages/sklearn/utils/validation.py:752: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "/home/chsl/.local/lib/python3.6/site-packages/sklearn/utils/validation.py:752: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "/home/chsl/.local/lib/python3.6/site-packages/sklearn/utils/validation.py:752: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "/home/chsl/.local/lib/python3.6/site-packages/sklearn/utils/validation.py:752: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "/home/chsl/.local/lib/python3.6/site-packages/sklearn/utils/validation.py:752: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "/home/chsl/.local/lib/python3.6/site-packages/sklearn/utils/validation.py:752: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "/home/chsl/.local/lib/python3.6/site-packages/sklearn/utils/validation.py:752: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "/home/chsl/.local/lib/python3.6/site-packages/sklearn/utils/validation.py:752: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/home/chsl/.local/lib/python3.6/site-packages/sklearn/utils/validation.py:752: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "/home/chsl/.local/lib/python3.6/site-packages/sklearn/utils/validation.py:752: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "/home/chsl/.local/lib/python3.6/site-packages/sklearn/utils/validation.py:752: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "/home/chsl/.local/lib/python3.6/site-packages/sklearn/utils/validation.py:752: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "/home/chsl/.local/lib/python3.6/site-packages/sklearn/utils/validation.py:752: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "/home/chsl/.local/lib/python3.6/site-packages/sklearn/utils/validation.py:752: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "/home/chsl/.local/lib/python3.6/site-packages/sklearn/utils/validation.py:752: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "/home/chsl/.local/lib/python3.6/site-packages/sklearn/utils/validation.py:752: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "/home/chsl/.local/lib/python3.6/site-packages/sklearn/utils/validation.py:752: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "/home/chsl/.local/lib/python3.6/site-packages/sklearn/utils/validation.py:752: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "/home/chsl/.local/lib/python3.6/site-packages/sklearn/utils/validation.py:752: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "/home/chsl/.local/lib/python3.6/site-packages/sklearn/utils/validation.py:752: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "/home/chsl/.local/lib/python3.6/site-packages/sklearn/utils/validation.py:752: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "/home/chsl/.local/lib/python3.6/site-packages/sklearn/utils/validation.py:752: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "/home/chsl/.local/lib/python3.6/site-packages/sklearn/utils/validation.py:752: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "/home/chsl/.local/lib/python3.6/site-packages/sklearn/utils/validation.py:752: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "/home/chsl/.local/lib/python3.6/site-packages/sklearn/utils/validation.py:752: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "/home/chsl/.local/lib/python3.6/site-packages/sklearn/utils/validation.py:752: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "/home/chsl/.local/lib/python3.6/site-packages/sklearn/utils/validation.py:752: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "/home/chsl/.local/lib/python3.6/site-packages/sklearn/utils/validation.py:752: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "/home/chsl/.local/lib/python3.6/site-packages/sklearn/utils/validation.py:752: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "/home/chsl/.local/lib/python3.6/site-packages/sklearn/utils/validation.py:752: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "/home/chsl/.local/lib/python3.6/site-packages/sklearn/utils/validation.py:752: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "/home/chsl/.local/lib/python3.6/site-packages/sklearn/utils/validation.py:752: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "/home/chsl/.local/lib/python3.6/site-packages/sklearn/utils/validation.py:752: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "/home/chsl/.local/lib/python3.6/site-packages/sklearn/utils/validation.py:752: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "/home/chsl/.local/lib/python3.6/site-packages/sklearn/utils/validation.py:752: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "/home/chsl/.local/lib/python3.6/site-packages/sklearn/utils/validation.py:752: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "/home/chsl/.local/lib/python3.6/site-packages/sklearn/utils/validation.py:752: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "/home/chsl/.local/lib/python3.6/site-packages/sklearn/utils/validation.py:752: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "/home/chsl/.local/lib/python3.6/site-packages/sklearn/utils/validation.py:752: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/home/chsl/.local/lib/python3.6/site-packages/sklearn/utils/validation.py:752: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "/home/chsl/.local/lib/python3.6/site-packages/sklearn/utils/validation.py:752: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "/home/chsl/.local/lib/python3.6/site-packages/sklearn/utils/validation.py:752: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "/home/chsl/.local/lib/python3.6/site-packages/sklearn/utils/validation.py:752: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "/home/chsl/.local/lib/python3.6/site-packages/sklearn/utils/validation.py:752: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "/home/chsl/.local/lib/python3.6/site-packages/sklearn/utils/validation.py:752: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "/home/chsl/.local/lib/python3.6/site-packages/sklearn/utils/validation.py:752: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "/home/chsl/.local/lib/python3.6/site-packages/sklearn/utils/validation.py:752: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "/home/chsl/.local/lib/python3.6/site-packages/sklearn/utils/validation.py:752: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "/home/chsl/.local/lib/python3.6/site-packages/sklearn/utils/validation.py:752: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "/home/chsl/.local/lib/python3.6/site-packages/sklearn/utils/validation.py:752: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "/home/chsl/.local/lib/python3.6/site-packages/sklearn/utils/validation.py:752: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "/home/chsl/.local/lib/python3.6/site-packages/sklearn/utils/validation.py:752: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "/home/chsl/.local/lib/python3.6/site-packages/sklearn/utils/validation.py:752: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "/home/chsl/.local/lib/python3.6/site-packages/sklearn/utils/validation.py:752: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "/home/chsl/.local/lib/python3.6/site-packages/sklearn/utils/validation.py:752: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "/home/chsl/.local/lib/python3.6/site-packages/sklearn/utils/validation.py:752: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "/home/chsl/.local/lib/python3.6/site-packages/sklearn/utils/validation.py:752: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "/home/chsl/.local/lib/python3.6/site-packages/sklearn/utils/validation.py:752: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "/home/chsl/.local/lib/python3.6/site-packages/sklearn/utils/validation.py:752: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "/home/chsl/.local/lib/python3.6/site-packages/sklearn/utils/validation.py:752: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "/home/chsl/.local/lib/python3.6/site-packages/sklearn/utils/validation.py:752: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "/home/chsl/.local/lib/python3.6/site-packages/sklearn/utils/validation.py:752: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "/home/chsl/.local/lib/python3.6/site-packages/sklearn/utils/validation.py:752: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "/home/chsl/.local/lib/python3.6/site-packages/sklearn/utils/validation.py:752: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "/home/chsl/.local/lib/python3.6/site-packages/sklearn/utils/validation.py:752: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "/home/chsl/.local/lib/python3.6/site-packages/sklearn/utils/validation.py:752: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "/home/chsl/.local/lib/python3.6/site-packages/sklearn/utils/validation.py:752: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "/home/chsl/.local/lib/python3.6/site-packages/sklearn/utils/validation.py:752: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "{'C': 2, 'gamma': 0.1, 'kernel': 'rbf'}\n",
      "mean_fit_time [0.00611439 0.02229614 0.00614915 0.00692263 0.00556555 0.01013002\n",
      " 0.00572605 0.02203336 0.00604935 0.02548671 0.00565062 0.02982521\n",
      " 0.00611501 0.02307596 0.00635662 0.00805526 0.00691571 0.01027718\n",
      " 0.00641766 0.02323637 0.00650439 0.02672391 0.00653319 0.03076854\n",
      " 0.00913491 0.02288418 0.00953722 0.00728512 0.01050739 0.01010261\n",
      " 0.00867543 0.02322178 0.00909524 0.02767615 0.00931921 0.03163147]\n",
      "std_fit_time [0.00092636 0.00074067 0.00077321 0.00014415 0.00082251 0.00050592\n",
      " 0.00082591 0.00048326 0.00091449 0.00061121 0.00080648 0.00072514\n",
      " 0.00058603 0.00117103 0.00059375 0.00122575 0.00033183 0.00026386\n",
      " 0.00081665 0.00105222 0.00063267 0.00027107 0.00072112 0.0004655\n",
      " 0.0014559  0.00083991 0.00111326 0.00029266 0.00228992 0.00014544\n",
      " 0.00146913 0.00121863 0.00150225 0.00073598 0.00147634 0.00052084]\n",
      "mean_score_time [0.00091314 0.00220261 0.00085602 0.0013751  0.00072103 0.00167212\n",
      " 0.00078893 0.00211668 0.00084233 0.00227814 0.00072336 0.00237002\n",
      " 0.00070605 0.00218334 0.00075445 0.00166526 0.0008687  0.00167394\n",
      " 0.00078912 0.00207272 0.00082631 0.00230622 0.00084701 0.00244336\n",
      " 0.00087585 0.00199323 0.00089812 0.00129161 0.00105491 0.00161061\n",
      " 0.00074716 0.00199871 0.00089707 0.00238314 0.00088167 0.00251522]\n",
      "std_score_time [3.17657305e-05 2.55605960e-04 9.66776725e-05 4.68419642e-05\n",
      " 2.64334712e-05 1.18931313e-04 5.27535790e-05 6.79691185e-05\n",
      " 6.93789053e-05 8.27909881e-05 2.62195406e-05 5.89332147e-05\n",
      " 2.58261802e-05 3.38285756e-04 2.93038063e-05 3.70455448e-04\n",
      " 4.18484309e-05 5.97031733e-05 8.19801374e-05 3.47579947e-05\n",
      " 7.66088128e-05 3.78044967e-05 1.11939958e-04 3.67274206e-05\n",
      " 7.18170584e-05 7.29192067e-05 8.54401179e-05 4.43170310e-05\n",
      " 1.62099430e-04 7.92645649e-05 6.12631652e-05 9.29548024e-05\n",
      " 5.76918970e-05 3.12572486e-05 5.81407060e-05 2.78664712e-05]\n",
      "param_C [1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 4 4 4 4 4 4 4 4 4 4 4 4]\n",
      "param_gamma [0.5 0.5 0.1 0.1 0.2 0.2 0.5 0.5 1 1 2 2 0.5 0.5 0.1 0.1 0.2 0.2 0.5 0.5 1\n",
      " 1 2 2 0.5 0.5 0.1 0.1 0.2 0.2 0.5 0.5 1 1 2 2]\n",
      "param_kernel ['linear' 'rbf' 'linear' 'rbf' 'linear' 'rbf' 'linear' 'rbf' 'linear'\n",
      " 'rbf' 'linear' 'rbf' 'linear' 'rbf' 'linear' 'rbf' 'linear' 'rbf'\n",
      " 'linear' 'rbf' 'linear' 'rbf' 'linear' 'rbf' 'linear' 'rbf' 'linear'\n",
      " 'rbf' 'linear' 'rbf' 'linear' 'rbf' 'linear' 'rbf' 'linear' 'rbf']\n",
      "params [{'C': 1, 'gamma': 0.5, 'kernel': 'linear'}, {'C': 1, 'gamma': 0.5, 'kernel': 'rbf'}, {'C': 1, 'gamma': 0.1, 'kernel': 'linear'}, {'C': 1, 'gamma': 0.1, 'kernel': 'rbf'}, {'C': 1, 'gamma': 0.2, 'kernel': 'linear'}, {'C': 1, 'gamma': 0.2, 'kernel': 'rbf'}, {'C': 1, 'gamma': 0.5, 'kernel': 'linear'}, {'C': 1, 'gamma': 0.5, 'kernel': 'rbf'}, {'C': 1, 'gamma': 1, 'kernel': 'linear'}, {'C': 1, 'gamma': 1, 'kernel': 'rbf'}, {'C': 1, 'gamma': 2, 'kernel': 'linear'}, {'C': 1, 'gamma': 2, 'kernel': 'rbf'}, {'C': 2, 'gamma': 0.5, 'kernel': 'linear'}, {'C': 2, 'gamma': 0.5, 'kernel': 'rbf'}, {'C': 2, 'gamma': 0.1, 'kernel': 'linear'}, {'C': 2, 'gamma': 0.1, 'kernel': 'rbf'}, {'C': 2, 'gamma': 0.2, 'kernel': 'linear'}, {'C': 2, 'gamma': 0.2, 'kernel': 'rbf'}, {'C': 2, 'gamma': 0.5, 'kernel': 'linear'}, {'C': 2, 'gamma': 0.5, 'kernel': 'rbf'}, {'C': 2, 'gamma': 1, 'kernel': 'linear'}, {'C': 2, 'gamma': 1, 'kernel': 'rbf'}, {'C': 2, 'gamma': 2, 'kernel': 'linear'}, {'C': 2, 'gamma': 2, 'kernel': 'rbf'}, {'C': 4, 'gamma': 0.5, 'kernel': 'linear'}, {'C': 4, 'gamma': 0.5, 'kernel': 'rbf'}, {'C': 4, 'gamma': 0.1, 'kernel': 'linear'}, {'C': 4, 'gamma': 0.1, 'kernel': 'rbf'}, {'C': 4, 'gamma': 0.2, 'kernel': 'linear'}, {'C': 4, 'gamma': 0.2, 'kernel': 'rbf'}, {'C': 4, 'gamma': 0.5, 'kernel': 'linear'}, {'C': 4, 'gamma': 0.5, 'kernel': 'rbf'}, {'C': 4, 'gamma': 1, 'kernel': 'linear'}, {'C': 4, 'gamma': 1, 'kernel': 'rbf'}, {'C': 4, 'gamma': 2, 'kernel': 'linear'}, {'C': 4, 'gamma': 2, 'kernel': 'rbf'}]\n",
      "split0_test_score [0.8487395  0.83193277 0.8487395  0.79831933 0.8487395  0.79831933\n",
      " 0.8487395  0.83193277 0.8487395  0.78151261 0.8487395  0.68067227\n",
      " 0.83193277 0.81512605 0.83193277 0.83193277 0.83193277 0.79831933\n",
      " 0.83193277 0.81512605 0.83193277 0.78151261 0.83193277 0.68907563\n",
      " 0.83193277 0.82352941 0.83193277 0.79831933 0.83193277 0.77310924\n",
      " 0.83193277 0.82352941 0.83193277 0.78151261 0.83193277 0.68907563]\n",
      "split1_test_score [0.8220339  0.74576271 0.8220339  0.80508475 0.8220339  0.80508475\n",
      " 0.8220339  0.74576271 0.8220339  0.72033898 0.8220339  0.66101695\n",
      " 0.79661017 0.76271186 0.79661017 0.81355932 0.79661017 0.79661017\n",
      " 0.79661017 0.76271186 0.79661017 0.72033898 0.79661017 0.68644068\n",
      " 0.80508475 0.75423729 0.80508475 0.80508475 0.80508475 0.83050847\n",
      " 0.80508475 0.75423729 0.80508475 0.72033898 0.80508475 0.68644068]\n",
      "split2_test_score [0.87068966 0.88793103 0.87068966 0.88793103 0.87068966 0.88793103\n",
      " 0.87068966 0.88793103 0.87068966 0.80172414 0.87068966 0.68965517\n",
      " 0.86206897 0.90517241 0.86206897 0.92241379 0.86206897 0.9137931\n",
      " 0.86206897 0.90517241 0.86206897 0.87068966 0.86206897 0.74137931\n",
      " 0.87931034 0.89655172 0.87931034 0.92241379 0.87931034 0.90517241\n",
      " 0.87931034 0.89655172 0.87931034 0.86206897 0.87931034 0.74137931]\n",
      "split3_test_score [0.92241379 0.84482759 0.92241379 0.92241379 0.92241379 0.88793103\n",
      " 0.92241379 0.84482759 0.92241379 0.75       0.92241379 0.70689655\n",
      " 0.9137931  0.8362069  0.9137931  0.92241379 0.9137931  0.88793103\n",
      " 0.9137931  0.8362069  0.9137931  0.76724138 0.9137931  0.70689655\n",
      " 0.9137931  0.8362069  0.9137931  0.90517241 0.9137931  0.87931034\n",
      " 0.9137931  0.8362069  0.9137931  0.75862069 0.9137931  0.70689655]\n",
      "split4_test_score [0.82608696 0.83478261 0.82608696 0.84347826 0.82608696 0.86956522\n",
      " 0.82608696 0.83478261 0.82608696 0.7826087  0.82608696 0.70434783\n",
      " 0.83478261 0.83478261 0.83478261 0.87826087 0.83478261 0.86086957\n",
      " 0.83478261 0.83478261 0.83478261 0.8        0.83478261 0.73913043\n",
      " 0.8173913  0.84347826 0.8173913  0.86956522 0.8173913  0.85217391\n",
      " 0.8173913  0.84347826 0.8173913  0.80869565 0.8173913  0.73913043]\n",
      "mean_test_score [0.85787671 0.82876712 0.85787671 0.8510274  0.85787671 0.84931507\n",
      " 0.85787671 0.82876712 0.85787671 0.76712329 0.85787671 0.68835616\n",
      " 0.84760274 0.83047945 0.84760274 0.87328767 0.84760274 0.8510274\n",
      " 0.84760274 0.83047945 0.84760274 0.78767123 0.84760274 0.71232877\n",
      " 0.84931507 0.83047945 0.84931507 0.85958904 0.84931507 0.84760274\n",
      " 0.84931507 0.83047945 0.84931507 0.7859589  0.84931507 0.71232877]\n",
      "std_test_score [0.03654459 0.04634419 0.03654459 0.04781769 0.03654459 0.03997919\n",
      " 0.03654459 0.04634419 0.03654459 0.02876988 0.03654459 0.0167936\n",
      " 0.03898191 0.04576337 0.03898191 0.04508794 0.03898191 0.04729187\n",
      " 0.03898191 0.04576337 0.03898191 0.04904668 0.03898191 0.02367569\n",
      " 0.04076806 0.04573049 0.04076806 0.05080835 0.04076806 0.04529823\n",
      " 0.04076806 0.04573049 0.04076806 0.04769627 0.04076806 0.02367569]\n",
      "rank_test_score [ 3 29  3  9  3 11  3 29  3 33  3 36 18 25 18  1 18  9 18 25 18 31 18 34\n",
      " 11 25 11  2 11 18 11 25 11 32 11 34]\n",
      "split0_train_score [0.89462366 0.96774194 0.89462366 0.92258065 0.89462366 0.95483871\n",
      " 0.89462366 0.96774194 0.89462366 0.98494624 0.89462366 0.99569892\n",
      " 0.89032258 0.98709677 0.89032258 0.95268817 0.89032258 0.96774194\n",
      " 0.89032258 0.98709677 0.89032258 0.99569892 0.89032258 1.\n",
      " 0.88387097 0.99354839 0.88387097 0.9655914  0.88387097 0.98064516\n",
      " 0.88387097 0.99354839 0.88387097 0.99784946 0.88387097 1.        ]\n",
      "split1_train_score [0.90128755 0.97424893 0.90128755 0.92274678 0.90128755 0.94635193\n",
      " 0.90128755 0.97424893 0.90128755 0.98283262 0.90128755 0.99570815\n",
      " 0.89914163 0.98927039 0.89914163 0.9527897  0.89914163 0.972103\n",
      " 0.89914163 0.98927039 0.89914163 0.99356223 0.89914163 0.99785408\n",
      " 0.9055794  0.99356223 0.9055794  0.96351931 0.9055794  0.98497854\n",
      " 0.9055794  0.99356223 0.9055794  0.99785408 0.9055794  0.99785408]\n",
      "split2_train_score [0.87820513 0.95726496 0.87820513 0.91239316 0.87820513 0.93589744\n",
      " 0.87820513 0.95726496 0.87820513 0.97222222 0.87820513 0.99145299\n",
      " 0.87820513 0.98076923 0.87820513 0.93376068 0.87820513 0.96367521\n",
      " 0.87820513 0.98076923 0.87820513 0.9957265  0.87820513 0.99786325\n",
      " 0.88675214 0.99145299 0.88675214 0.95299145 0.88675214 0.98076923\n",
      " 0.88675214 0.99145299 0.88675214 0.99786325 0.88675214 0.99786325]\n",
      "split3_train_score [0.86538462 0.96367521 0.86538462 0.91025641 0.86538462 0.93162393\n",
      " 0.86538462 0.96367521 0.86538462 0.97863248 0.86538462 1.\n",
      " 0.86965812 0.98717949 0.86965812 0.93162393 0.86965812 0.95726496\n",
      " 0.86965812 0.98717949 0.86965812 0.99786325 0.86965812 1.\n",
      " 0.88461538 0.99786325 0.88461538 0.9508547  0.88461538 0.98076923\n",
      " 0.88461538 0.99786325 0.88461538 0.99786325 0.88461538 1.        ]\n",
      "split4_train_score [0.8891258  0.96588486 0.8891258  0.91471215 0.8891258  0.93603412\n",
      " 0.8891258  0.96588486 0.8891258  0.97867804 0.8891258  0.99147122\n",
      " 0.89552239 0.98507463 0.89552239 0.94029851 0.89552239 0.95522388\n",
      " 0.89552239 0.98507463 0.89552239 0.99573561 0.89552239 0.9978678\n",
      " 0.89765458 0.99360341 0.89765458 0.95522388 0.89765458 0.97654584\n",
      " 0.89765458 0.99360341 0.89765458 0.9978678  0.89765458 0.9978678 ]\n",
      "mean_train_score [0.88572535 0.96576318 0.88572535 0.91653783 0.88572535 0.94094922\n",
      " 0.88572535 0.96576318 0.88572535 0.97946232 0.88572535 0.99486626\n",
      " 0.88656997 0.9858781  0.88656997 0.9422322  0.88656997 0.9632018\n",
      " 0.88656997 0.9858781  0.88656997 0.9957173  0.88656997 0.99871703\n",
      " 0.89169449 0.99400605 0.89169449 0.95763615 0.89169449 0.9807416\n",
      " 0.89169449 0.99400605 0.89169449 0.99785957 0.89169449 0.99871703]\n",
      "std_train_score [1.26745754e-02 5.52299874e-03 1.26745754e-02 5.19681224e-03\n",
      " 1.26745754e-02 8.47050170e-03 1.26745754e-02 5.52299874e-03\n",
      " 1.26745754e-02 4.36245343e-03 1.26745754e-02 3.19168086e-03\n",
      " 1.10295584e-02 2.87862799e-03 1.10295584e-02 9.04244724e-03\n",
      " 1.10295584e-02 6.30811681e-03 1.10295584e-02 2.87862799e-03\n",
      " 1.10295584e-02 1.36015946e-03 1.10295584e-02 1.04755339e-03\n",
      " 8.53301253e-03 2.09593087e-03 8.53301253e-03 5.85282642e-03\n",
      " 8.53301253e-03 2.66709122e-03 8.53301253e-03 2.09593087e-03\n",
      " 8.53301253e-03 6.74068188e-06 8.53301253e-03 1.04755339e-03]\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/home/chsl/.local/lib/python3.6/site-packages/sklearn/utils/validation.py:752: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "/home/chsl/.local/lib/python3.6/site-packages/sklearn/utils/validation.py:752: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "/home/chsl/.local/lib/python3.6/site-packages/sklearn/utils/validation.py:752: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "/home/chsl/.local/lib/python3.6/site-packages/sklearn/utils/validation.py:752: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "/home/chsl/.local/lib/python3.6/site-packages/sklearn/model_selection/_search.py:841: DeprecationWarning: The default of the `iid` parameter will change from True to False in version 0.22 and will be removed in 0.24. This will change numeric results when test-set sizes are unequal.\n",
      "  DeprecationWarning)\n",
      "/home/chsl/.local/lib/python3.6/site-packages/sklearn/utils/validation.py:752: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n"
     ]
    }
   ],
   "source": [
    "from sklearn.model_selection import GridSearchCV\n",
    "from sklearn import svm\n",
    "\n",
    "#得到超参数\n",
    "parameters = {'kernel':('linear', 'rbf'), 'C':[1, 2, 4], 'gamma':[0.5, 0.1, 0.2 ,0.5, 1, 2]}\n",
    "svr = svm.SVC()\n",
    "gsearch = GridSearchCV(svr, param_grid = parameters, cv=5)\n",
    "gsearch.fit(X_train,y_train.astype('int'))\n",
    "print(gsearch.best_params_)\n",
    "for k, v in gsearch.cv_results_.items():\n",
    "    print(k, v)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 163,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "The r2 score of RidgeCV on test is 0.805134410226491\n",
      "The r2 score of RidgeCV on train is 0.7972020989821751\n"
     ]
    }
   ],
   "source": [
    "from sklearn.linear_model import RidgeCV\n",
    "\n",
    "alphas = [0.1,1.0,10]\n",
    "ridge = RidgeCV(alphas = alphas, store_cv_values = False, cv = 5)\n",
    "\n",
    "ridge.fit(X_train,y_train)\n",
    "\n",
    "y_test_pred_ridge = ridge.predict(X_test)\n",
    "y_train_pred_ridge = ridge.predict(X_train)\n",
    "\n",
    "print(\"The r2 score of RidgeCV on test is %s\"%r2_score(y_test, y_test_pred_ridge))\n",
    "print(\"The r2 score of RidgeCV on train is %s\"%r2_score(y_train, y_train_pred_ridge))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 165,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "alpha is: 10.0\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>columns</th>\n",
       "      <th>coef_lr</th>\n",
       "      <th>coef_ridge</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>yr</td>\n",
       "      <td>[1.1851959584673368]</td>\n",
       "      <td>[0.3818320790312159]</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>mnth</td>\n",
       "      <td>[0.29935653410152596]</td>\n",
       "      <td>[-0.14378609686225147]</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>season</td>\n",
       "      <td>[0.293371062067745]</td>\n",
       "      <td>[0.27612012687662246]</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9</th>\n",
       "      <td>atemp</td>\n",
       "      <td>[0.2529716382829137]</td>\n",
       "      <td>[0.2555169623095225]</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8</th>\n",
       "      <td>temp</td>\n",
       "      <td>[0.24943644381198654]</td>\n",
       "      <td>[0.24803851783907815]</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>weekday</td>\n",
       "      <td>[0.06174148083026379]</td>\n",
       "      <td>[0.06054646629108333]</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>workingday</td>\n",
       "      <td>[0.01825240519961894]</td>\n",
       "      <td>[0.01813772789085551]</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>holiday</td>\n",
       "      <td>[-0.042228491655313234]</td>\n",
       "      <td>[-0.040725741478676275]</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>10</th>\n",
       "      <td>hum</td>\n",
       "      <td>[-0.061190500475231]</td>\n",
       "      <td>[-0.06719187456588106]</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>11</th>\n",
       "      <td>windspeed</td>\n",
       "      <td>[-0.09615096775049059]</td>\n",
       "      <td>[-0.09729650116875414]</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7</th>\n",
       "      <td>weathersit</td>\n",
       "      <td>[-0.17228855317347397]</td>\n",
       "      <td>[-0.16567423379759758]</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>instant</td>\n",
       "      <td>[-0.747751348391044]</td>\n",
       "      <td>[0.16784469004610789]</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "       columns                  coef_lr               coef_ridge\n",
       "2           yr     [1.1851959584673368]     [0.3818320790312159]\n",
       "3         mnth    [0.29935653410152596]   [-0.14378609686225147]\n",
       "1       season      [0.293371062067745]    [0.27612012687662246]\n",
       "9        atemp     [0.2529716382829137]     [0.2555169623095225]\n",
       "8         temp    [0.24943644381198654]    [0.24803851783907815]\n",
       "5      weekday    [0.06174148083026379]    [0.06054646629108333]\n",
       "6   workingday    [0.01825240519961894]    [0.01813772789085551]\n",
       "4      holiday  [-0.042228491655313234]  [-0.040725741478676275]\n",
       "10         hum     [-0.061190500475231]   [-0.06719187456588106]\n",
       "11   windspeed   [-0.09615096775049059]   [-0.09729650116875414]\n",
       "7   weathersit   [-0.17228855317347397]   [-0.16567423379759758]\n",
       "0      instant     [-0.747751348391044]    [0.16784469004610789]"
      ]
     },
     "execution_count": 165,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#mse_mean = np.mean(ridge.cv_values_, axis = 0)\n",
    "#plt.plot(np.log10(alphas), mse_mean.reshape(len(alphas),1)) \n",
    "\n",
    "#plt.xlabel('log(alpha)')\n",
    "#plt.ylabel('mse')\n",
    "#plt.show()\n",
    "\n",
    "print ('alpha is:', ridge.alpha_)\n",
    "\n",
    "fs = pd.DataFrame({\"columns\":list(columns), \"coef_lr\":list((lr.coef_.T)), \"coef_ridge\":list((ridge.coef_.T))})\n",
    "fs.sort_values(by=['coef_lr'],ascending=False)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 167,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "The r2 score of LassoCV on test is %s 0.7291544199831852\n",
      "The r2 score of LassoCV on train is %s 0.7427887298897787\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/home/chsl/.local/lib/python3.6/site-packages/sklearn/linear_model/coordinate_descent.py:1108: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n"
     ]
    }
   ],
   "source": [
    "from sklearn.linear_model import LassoCV\n",
    "lasso = LassoCV(alphas = alphas, cv = 5)\n",
    "\n",
    "lasso.fit(X_train, y_train)  \n",
    "\n",
    "#测试\n",
    "y_test_pred_lasso = lasso.predict(X_test)\n",
    "y_train_pred_lasso = lasso.predict(X_train)\n",
    "\n",
    "print(\"The r2 score of LassoCV on test is %s\", r2_score(y_test, y_test_pred_lasso))\n",
    "print(\"The r2 score of LassoCV on train is %s\", r2_score(y_train, y_train_pred_lasso))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 168,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "alpha is: 0.1\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>columns</th>\n",
       "      <th>coef_lr</th>\n",
       "      <th>coef_ridge</th>\n",
       "      <th>coef_lasso</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>yr</td>\n",
       "      <td>[1.1851959584673368]</td>\n",
       "      <td>[0.3818320790312159]</td>\n",
       "      <td>0.344441</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>mnth</td>\n",
       "      <td>[0.29935653410152596]</td>\n",
       "      <td>[-0.14378609686225147]</td>\n",
       "      <td>0.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>season</td>\n",
       "      <td>[0.293371062067745]</td>\n",
       "      <td>[0.27612012687662246]</td>\n",
       "      <td>0.102344</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9</th>\n",
       "      <td>atemp</td>\n",
       "      <td>[0.2529716382829137]</td>\n",
       "      <td>[0.2555169623095225]</td>\n",
       "      <td>0.325536</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8</th>\n",
       "      <td>temp</td>\n",
       "      <td>[0.24943644381198654]</td>\n",
       "      <td>[0.24803851783907815]</td>\n",
       "      <td>0.137742</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>weekday</td>\n",
       "      <td>[0.06174148083026379]</td>\n",
       "      <td>[0.06054646629108333]</td>\n",
       "      <td>0.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>workingday</td>\n",
       "      <td>[0.01825240519961894]</td>\n",
       "      <td>[0.01813772789085551]</td>\n",
       "      <td>0.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>holiday</td>\n",
       "      <td>[-0.042228491655313234]</td>\n",
       "      <td>[-0.040725741478676275]</td>\n",
       "      <td>-0.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>10</th>\n",
       "      <td>hum</td>\n",
       "      <td>[-0.061190500475231]</td>\n",
       "      <td>[-0.06719187456588106]</td>\n",
       "      <td>-0.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>11</th>\n",
       "      <td>windspeed</td>\n",
       "      <td>[-0.09615096775049059]</td>\n",
       "      <td>[-0.09729650116875414]</td>\n",
       "      <td>-0.000458</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7</th>\n",
       "      <td>weathersit</td>\n",
       "      <td>[-0.17228855317347397]</td>\n",
       "      <td>[-0.16567423379759758]</td>\n",
       "      <td>-0.113368</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>instant</td>\n",
       "      <td>[-0.747751348391044]</td>\n",
       "      <td>[0.16784469004610789]</td>\n",
       "      <td>0.112451</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "       columns                  coef_lr               coef_ridge  coef_lasso\n",
       "2           yr     [1.1851959584673368]     [0.3818320790312159]    0.344441\n",
       "3         mnth    [0.29935653410152596]   [-0.14378609686225147]    0.000000\n",
       "1       season      [0.293371062067745]    [0.27612012687662246]    0.102344\n",
       "9        atemp     [0.2529716382829137]     [0.2555169623095225]    0.325536\n",
       "8         temp    [0.24943644381198654]    [0.24803851783907815]    0.137742\n",
       "5      weekday    [0.06174148083026379]    [0.06054646629108333]    0.000000\n",
       "6   workingday    [0.01825240519961894]    [0.01813772789085551]    0.000000\n",
       "4      holiday  [-0.042228491655313234]  [-0.040725741478676275]   -0.000000\n",
       "10         hum     [-0.061190500475231]   [-0.06719187456588106]   -0.000000\n",
       "11   windspeed   [-0.09615096775049059]   [-0.09729650116875414]   -0.000458\n",
       "7   weathersit   [-0.17228855317347397]   [-0.16567423379759758]   -0.113368\n",
       "0      instant     [-0.747751348391044]    [0.16784469004610789]    0.112451"
      ]
     },
     "execution_count": 168,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "mses = np.mean(lasso.mse_path_, axis = 1)\n",
    "plt.plot(np.log10(lasso.alphas_), mses)\n",
    "\n",
    "plt.xlabel('log(alpha)')\n",
    "plt.ylabel('mse')\n",
    "plt.show()\n",
    "            \n",
    "print ('alpha is:', lasso.alpha_)\n",
    "\n",
    "fs = pd.DataFrame({\"columns\":list(columns), \"coef_lr\":list((lr.coef_.T)), \"coef_ridge\":list((ridge.coef_.T)), \"coef_lasso\":list((lasso.coef_.T))})\n",
    "fs.sort_values(by=['coef_lr'],ascending=False)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 169,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "alpha is: 0.1\n"
     ]
    }
   ],
   "source": [
    "mses = np.mean(lasso.mse_path_, axis = 1)\n",
    "plt.plot(np.log10(lasso.alphas_), mses)\n",
    "plt.xlabel('log(alpha)')\n",
    "plt.ylabel('mse')\n",
    "plt.show()    \n",
    "\n",
    "print ('alpha is:', lasso.alpha_)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "从结果看，最小二乘线性回归还效果比较好一点\n",
    "\n",
    "5折交叉验证的做法有疑问"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.7rc1"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
